#include <iostream>
using namespace std;

struct TreeNode {
	int val;
	struct TreeNode *left;
	struct TreeNode *right;
	TreeNode(int x) :
		val(x), left(NULL), right(NULL) {
	}
};



void Mirror(TreeNode *pRoot) {
	if (pRoot == NULL)
		return;
	TreeNode* tmp = pRoot->left;
	pRoot->left = pRoot->right;
	pRoot->right = tmp;
	Mirror(pRoot->left);
	Mirror(pRoot->right);

}

//int main()
//{
//	TreeNode* root1 = new TreeNode(0);
//	TreeNode* p1 = root1;
//	bool flag = true;
//	for (int i = 1; i < 10; ++i)
//	{
//		TreeNode* left = new TreeNode(i);
//		TreeNode* right = new TreeNode(i + 1);
//		p1->left = left;
//		p1->right = right;
//		if (flag)
//		{
//			flag = false;
//			p1 = p1->right;
//		}
//		else
//		{
//			flag = true;
//			p1 = p1->left;
//		}
//	}
//	Mirror(root1);
//
//	
//
//	return 0;
//}